home *** CD-ROM | disk | FTP | other *** search
-
- ;***********************************************************************
- ;*---------------------------------------------------------------------*
- ;* RTG BOB-SYSTEM EXAMPLE SOURCE *
- ;*---------------------------------------------------------------------*
- ;* Created by Rady Marusa, Ablaze Entertainment Slovakia. *
- ;* http://www.vadium.sk/ablaze *
- ;*---------------------------------------------------------------------*
- ;***********************************************************************
-
- ;-----------------------------------------------------------------------
-
- INCLUDE "RTGMASTER/RTGMASTER.I"
- INCLUDE "RTGMASTER/RTGSUBLIBS.I"
- INCLUDE "RTGMASTER/RTGMASTER_LIB.I"
-
- ;------------------------------------------------------------------------
-
- SECTION EXAMPLE,CODE
-
-
- START MOVE.L SP,OLD_SP
-
- BSR.W RTG_NEW
-
- MOVE.L RTGPTR,A6
- MOVE.L RTG_SCR,A0
- MOVEQ #8,D0
- JSR -$D8(A6) ; OPEN RTGBOB SYSTEM
- MOVE.L D0,RTGBOB
-
- BSR.W INIT
-
- .LOOP MOVE.L RTGPTR,A6
- MOVE.L RTGBOB,A0
- MOVE.L CHUNKY_BUFFER,A1
- MOVE.L BACK_BUFFER,A2
- MOVEQ #1,D0
- JSR -$EA(A6) ; RTG REFRESH BUFFER
-
- MOVE.L RTGPTR,A6
- MOVE.L RTGBOB,A0
- MOVE.L CHUNKY_BUFFER,A1
- MOVE.L #SPRDATA,A2
- MOVE.L GOGO,D0
- SUB.L #120,D0
- MOVEQ #40,D1
- MOVE.L #64,D2 ; SPRITE SIZE X
- MOVE.L #50,D3 ; SPRITE SIZE Y
- JSR -$F0(A6) ; RTG DRAW SPRITE 1
-
- MOVEQ #40,D0
- MOVE.L GOGO,D1
- SUB.L #120,D1
- JSR -$F0(A6) ; RTG DRAW SPRITE 2
-
- MOVE.L GOGO,D0
- SUB.L #120,D0
- MOVE.L GOGO,D1
- SUB.L #120,D1
- JSR -$F0(A6) ; RTG DRAW SPRITE 3
-
- ADD.L #1,GOGO ; SPRITE MOVEMENT...
- ANDI.L #511,GOGO
-
- JSR CONVERT ; AGA/CGFX TARGET
- BTST.B #10,$DFF016
- BNE.W .LOOP
-
- BSR.W RTG_OLD
- MOVE.L RTGPTR,A6
- MOVE.L RTGBOB,A0
- JSR -$E4(A6) ; CLOSE RTGBOB SYSTEM
- RTS
-
-
- FAILED BSR.W RTG_OLD
- MOVE.L RTGPTR,A6
- MOVE.L RTGBOB,A0
- JSR -$E4(A6) ; CLOSE RTGBOB SYSTEM
- MOVE.L OLD_SP,SP
- RTS
-
-
-
- INIT MOVE.L #BUF1,CHUNKY_BUFFER ; INIT BOTH BUFFERS
- MOVE.L #BUF2,BACK_BUFFER
- LEA BGR(PC),A0
- MOVE.L CHUNKY_BUFFER(PC),A1
- BSR.W COPY
- MOVE.L CHUNKY_BUFFER(PC),A0
- MOVE.L BACK_BUFFER(PC),A1
- BSR.W COPY
- BSR.W INITPAL
- RTS
-
-
- INITPAL LEA PALLETE(PC),A0 ; INIT PALLETE
- LEA COLORS+4(PC),A1
- MOVE.W #767,D0
- .LOOP MOVE.B (A0)+,(A1)
- ADDQ #4,A1
- DBF D0,.LOOP
- MOVE.L RTGPTR,A6
- MOVE.L RTG_SCR,A0
- LEA COLORS,A1
- JSR _LVOLoadRGBRtg(A6)
- RTS
-
-
- COPY MOVE.L #5119,D0 ; COPY SCREEN (320x256 PIXELS)
- .LOOP MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- MOVE.L (A0)+,(A1)+
- DBF D0,.LOOP
- RTS
-
- *********************************************************************
-
- RTG_NEW MOVE.L $4,A6 ; INIT RTG STUFF
- LEA RTGNAME,A1
- MOVEQ #0,D0
- JSR -408(A6)
- MOVE.L D0,RTGPTR
- BEQ.W .ERR3
- MOVE.L RTGPTR,A6
- LEA SRTAGS,A0
- JSR _LVORtgScreenModeReq(A6)
- MOVE.L D0,SMODE
- BEQ.W FAILED
- MOVE.L SMODE,A0
- LEA SCTAGS,A1
- JSR _LVOOpenRtgScreen(A6)
- MOVE.L D0,RTG_SCR
- BEQ.W .ERR4
- MOVE.L RTG_SCR,A0
- LEA TAGS,A1
- JSR _LVOGetRtgScreenData(A6)
- MOVE.L RTG_SCR,A0
- LEA COLORS,A1
- JSR _LVOLoadRGBRtg(A6)
- MOVE.L RTG_SCR,A0
- JSR _LVOLockRtgScreen(A6)
- MOVE.L D0,SCREEN
- MOVE.L RTG_SCR,A0
- MOVEQ #0,D0
- JSR _LVOGetBufAdr(A6)
- MOVE.L D0,BUFFER1
- BEQ.W FAILED
- MOVE.L RTG_SCR,A0
- MOVEQ #1,D0
- JSR _LVOGetBufAdr(A6)
- MOVE.L D0,BUFFER2
- MOVE.L D0,BUFFERO
- BEQ.W FAILED
- MOVE.L RTG_SCR,A0
- JSR _LVORtgInitRDCMP(A6)
- MOVE.L D0,RDCMP
- CLR.W _ACTIVE
- RTS
- .ERR3 MOVEQ #-3,D0
- BRA.W FAILED
- .ERR4 MOVEQ #-4,D0
- BRA.W FAILED
-
- RTG_OLD MOVE.L RTGPTR,A6 ; CLOSE RTG STUFF
- MOVE.L RTG_SCR,D7
- BEQ.S .EXIT
- MOVE.L D7,A0
- JSR _LVOUnlockRtgScreen(A6)
- MOVE.L RTG_SCR,D0
- BEQ.S .EXIT
- MOVE.L D0,A0
- JSR _LVOCloseRtgScreen(A6)
- MOVE.L SMODE,D0
- BEQ.S .EXIT
- MOVE.L D0,A0
- JSR _LVOFreeRtgScreenModeReq(A6)
- MOVE.L RTGPTR,D0
- BEQ.S .EXIT
- MOVE.L D0,A1
- MOVE.L $4.w,A6
- JSR -414(A6)
- .EXIT RTS
-
- CONVERT MOVE.L RTG_SCR,A0
- MOVE.L BUFFERO,A1
- MOVE.L CHUNKY_BUFFER,A2
- MOVEQ #0,D0 ; X DEST OFFSET
- MOVEQ #0,D1 ; Y DEST OFFSET
- MOVE.L WIDTH,D2 ; WIDTH OF THE CHUNKY-COPY/C2P
- MOVE.L HEIGHT,D3 ; HEIGHT OF THE CHUNKY-COPY/C2P
- MOVE.L WIDTH,D4 ; SOURCE-WIDTH
- MOVE.L HEIGHT,D5 ; SOURCE-HEIGHT
- MOVE.L #0,D6 ; SOURCE-X-OFFSET
- MOVE.L #0,D7 ; SOURCE-Y-OFFSET
- MOVE.L #0,A3 ; NO MASKING (IMPORTANT !!!)
- MOVE.L RTGPTR,A6
- JSR _LVOCopyRtgBlit(A6) ; DO IT!
- MOVEQ #0,D0
- MOVE.W _ACTIVE,D0
- ADDQ.W #1,D0
- MOVE.W D0,_ACTIVE
- ANDI.W #1,D0
- BNE.S .RTG1
- MOVE.L BUFFER2,BUFFERO
- BRA.S .CONT
- .RTG1 MOVE.L BUFFER1,BUFFERO
- .CONT MOVE.L RTGPTR,A6
- MOVE.L RTG_SCR,A0
- JSR _LVOSwitchScreens(A6)
- RTS
-
- RTGNAME DC.B 'rtgmaster.library',0
- EVEN
-
- RTGPTR DC.L 0
-
- SMODE DC.L 0
- SCREEN DC.L 0
- RDCMP DC.L 0
- RTG_SCR DC.L 0
-
- COLORS DC.W 256,0
- BLK.B 3072,0
- DC.L 0,0
-
- BUFFER1 DC.L 0
- BUFFER2 DC.L 0
- BUFFERO DC.L 0
- _ACTIVE DC.W 0,0
-
- CHUNKY_BUFFER DC.L 0
- BACK_BUFFER DC.L 0
-
- ;-----------------------------------------------------------------------
-
- SRTAGS dc.l smr_MinWidth,320
- dc.l smr_MaxWidth,320
- dc.l smr_MinHeight,256
- dc.l smr_MaxHeight,256
- dc.l smr_InitialWidth,320
- dc.l smr_InitialHeight,256
- dc.l smr_InitialDepth,8
- dc.l smr_ChunkySupport,$00000200
- dc.l smr_PlanarSupport,$000000c0
- dc.l smr_PlanarRoundW,32
- dc.l smr_PlanarRoundH,32
- dc.l smr_ChunkyRoundW,32
- dc.l smr_ChunkyRoundH,32
- dc.l smr_Buffers,2
- dc.l smr_ForceOpen,0
- dc.l 0,0
-
- SCTAGS dc.l rtg_Buffers,2
- dc.l rtg_Draggable,-1
- dc.l rtg_Interleaved,0
- dc.l rtg_PlanarSupport,$000000c0
- dc.l rtg_ChunkySupport,$00000200
- dc.l 0,0
-
- TAGS dc.l grd_PlaneSize
- BPLSIZE dc.l 0
- dc.l grd_Width
- WIDTH dc.l 0
- dc.l grd_Height
- HEIGHT dc.l 0
- dc.l grd_Depth
- DEPTH dc.l 0
- dc.l grd_PixelLayout
- PIXEL dc.l 0
- dc.l 0,0
-
- OLD_SP DC.L 0
- RTGBOB DC.L 0
- GOGO DC.L 64
-
- PALLETE INCBIN 'BACKGROUND.PAL'
- BGR INCBIN 'BACKGROUND.BIN'
- SPRDATA INCBIN 'SPRITE.BIN'
-
-
- ;----------------------------------------------------------------------
-
- SECTION BUFFERS,bss_f
-
- BUF1 DS.B 320*256
- BUF2 DS.B 320*256
-
-
-